Methods and devices for activity monitoring in spaces utilizing an array of motion sensors

ABSTRACT

Aspects of the present disclosure include arrays of motion sensors that may be used to monitor a space to determine occupancy characteristics of the space, such as whether or not the space is occupied and the number of people located within the space. The array of motion sensors may be operatively connected to one or more building system components, such as lighting and HVAC equipment and can be used for adjusting an operating condition of the building system component based on whether a space is occupied.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a divisional of U.S. patent application Ser. No.15/875,090, entitled “Methods and Devices for Activity Monitoring inSpaces Utilizing an Array of Motion Sensors,” filed Jan. 19, 2018, whichis hereby incorporated by reference in its entirety.

FIELD OF THE DISCLOSURE

The present disclosure generally relates to the field of methods anddevices for activity monitoring in spaces. In particular, the presentdisclosure is directed to methods and devices for activity monitoring inspaces utilizing an array of motion sensors.

BACKGROUND

Knowledge regarding the occupancy of a particular region or space can beuseful in a variety of applications. For instance, knowledge ofoccupancy within a building can be used to improve the energy efficiencyby the automation of lighting and heating, ventilation and/or airconditioning (HVAC), and can be used in emergency situations to improvesearch and rescue efforts of first responders by providing informationregarding the location of occupants.

Passive infrared (PIR) motion sensors are often used for occupancysensing. For example, PIR sensors are often used in combination withwall switches to turn on the lights in a room when a person enters, andturn the lights off at a fixed preset time duration after motion in theroom is no longer detected. This type of system, however, can result inthe lights in a room automatically turning off after a predeterminedperiod of time after motion is last sensed, even if one or more peopleare still in the room.

SUMMARY OF THE DISCLOSURE

In one implementation, the present disclosure is directed to a method ofdetermining an occupancy characteristic of a space with an array ofmotion sensors, each of the motion sensors having a field of view (FOV)and the space having a gate for entering and exiting the space, thearray of motion sensors including a gate sensor, in which the gate is inthe FOV of the gate sensor. The method includes detecting, with thearray, the presence of a person in the space when at least one of themotion sensors becomes active, and determining the space is empty whenall of the motion sensors become inactive and the gate sensor was thelast one of the motion sensors to be active.

In some embodiments, the method further includes determining if a valueof a timer meets or exceeds a threshold value, and determining the spaceis empty in response to determining that all of the motion sensors areinactive, the gate sensor was the last one of the motion sensors to beactive, and the value of the timer meets or exceeds the threshold value.In some embodiments, the method further includes, in response todetermining the space is empty, sending an unoccupied signal to one ormore building system components. In some embodiments, the method furtherincludes determining whether one of the motion sensors adjacent the gatesensor was active prior to the gate sensor being active, and determiningthat a single person left the space in response to determining that oneof the motion sensors adjacent the gate sensor was active prior to thegate sensor being active. In some embodiments, the method furtherincludes determining whether a duration of time the gate sensor wasactive prior to all of the motion sensors becoming inactive is greaterthan a predetermined time duration, and determining that a single personleft the space in response to determining that the duration of time thegate sensor was active prior to all of the motion sensors becominginactive is greater than the predetermined time duration. In someembodiments, the predetermined time duration is an amount of time towalk across a portion of the space encompassed by the gate sensor FOV.In some embodiments, the method further includes determining a firstamount of time that the gate sensor was active prior to the spacebecoming empty, determining a second amount of time associated with oneperson walking across the gate sensor FOV, and determining, based on thefirst amount of time and a second amount of time, a number of peoplethat have left the space.

In another implementation, the present disclosure is directed to amethod of determining an occupancy characteristic of a space with anarray of motion sensors operatively connected to a processor. The methodincludes receiving sensor data from the array of motion sensors,characterizing, by the processor, the sensor data as components of statevectors, and determining, by the processor, occupancy characteristics ofthe space by analyzing the state vectors.

In some embodiments, the method further includes applying, by theprocessor, a compaction process to disregard ones of the state vectorsassociated with random motion within the space. In some embodiments, thecompaction process includes disregarding, by the processor, statevectors in which all of the motion sensors are inactive for a timeduration that is less than a threshold value. In some embodiments, themethod further includes defining, by the processor, the threshold valueas a duration of time for a person to walk across a field of view (FOV)of one of the motion sensors. In some embodiments, the method furtherincludes determining, by the processor, the threshold value byidentifying three consecutive state vectors, the first and third of thethree consecutive state vectors each containing only one active motionsensor and second state vector containing no active motion sensors, inwhich the active motion sensors in the first and third state vectors areimmediately adjacent in space. In some embodiments, the space includes agate for entering and exiting the space, and one of the motion sensorsis a gate sensor having a field of view that includes the gate, themethod further includes identifying, by the processor, the gate sensorby analyzing consecutive state vectors. In some embodiments, identifyingthe gate sensor includes identifying, by the processor, a state vectorof inactivity preceded and succeeded by a state vector with at least oneactive motion sensor. In some embodiments, identifying the state vectorof inactivity includes determining, by the processor, whether the statevector of inactivity has a duration that is greater than a thresholdvalue. In some embodiments, determining occupancy characteristics of thespace by analyzing the state vectors includes calculating, by theprocessor, feature vectors from the sensor data, in which the featurevectors include a sum of the number of active sensors and spatialcorrelation between consecutive state vectors, and using, by theprocessor, a classifier to interpret the feature vectors based on alearning set of feature vectors.

In yet another implementation, the present disclosure is directed to adevice. The device includes a plurality of motion sensors, in which atleast one of the plurality of motion sensors is configured to be a gatesensor having a field of view that, when the device is installed in aspace, includes a gate for entering and exiting the space, and aprocessor configured to detect, with the plurality of motion sensors,the presence of a person when one of the motion sensors becomes active,and determine that a space monitored by the device is empty when all ofthe motion sensors become inactive and the gate sensor was the last oneof the motion sensors to be active.

In some embodiments, the processor is further configured to characterizesensor data from the plurality of sensors as state vectors havingcomponents, each of the components corresponding to one of the motionsensors. In some embodiments, the processor is further configured toidentify the gate sensor from the plurality of sensors by analyzing thestate vectors. In some embodiments, the processor is further configuredto determine when a person has left the space by identifying a statevector in which only the gate sensor was active followed by a durationof time where no sensor was active.

BRIEF DESCRIPTION OF THE DRAWINGS

For the purpose of illustrating the disclosure, the drawings showaspects of one or more embodiments of the disclosure. However, it shouldbe understood that the present disclosure is not limited to the precisearrangements and instrumentalities shown in the drawings.

FIG. 1 is a diagram of one example of a device that includes an array ofmotion sensors located in a space for monitoring the occupancy of thespace in accordance with various embodiments.

FIG. 2 is a diagram of another example of a device that includes anarray of motion sensors located in a space for monitoring the occupancyof the space in accordance with various embodiments.

FIG. 3 is a functional block diagram of the device of FIG. 1 inaccordance with various embodiments.

FIG. 4 is a flowchart of a process for determining when a space becomesunoccupied by analyzing data from an array of motion sensors inaccordance with various embodiments.

FIG. 5 is a diagrammatic representation of one embodiment of a computingdevice in accordance with various embodiments.

DETAILED DESCRIPTION

Aspects of the present disclosure include arrays of motion sensors thatmay be used to monitor a space to determine occupancy characteristics ofthe space, such as whether or not the space is occupied and the numberof people located within the space. The array of motion sensors may beoperatively connected to one or more building system components, such aslighting and HVAC equipment, and can be used for adjusting an operatingcondition of the building system components based on whether a space isoccupied.

One example of a motion sensor is a passive infrared (PIR) motionsensor, which can detect movement of any object in its field-of-view(FOV) that is not in thermal equilibrium with its surroundings, such asmovement of a person within the FOV. In some examples, PIR sensors havea property that a duration of active or “on” state is proportional tothe thermal stimulus, that is, they turn “on” at the moment a detectedthermal signal exceeds a running mean of detected thermal signals bysome predefined threshold and then stay on until the running meancatches-up with the signal. In other words, over time the running meanand the thermal signal become separated by an amount below a threshold,such that after a period of time the PIR sensor becomes inactive.

FIG. 1 shows one example of a device 100 for detecting the presence ofpeople within the space that can be communicatively coupled to one ormore building system components (FIG. 3) such as lighting within thespace for turning the lights on and off when the space is occupied orempty, respectively. In the illustrated example, device 100 is locatedon a desk 102 within a monitored space 104. In another example, device100 may also or alternatively be located on the wall or ceiling of thespace. Device 100 includes a motion sensor array 105, which includes aplurality of motion sensors 106, specifically, 106 a-106 e, formonitoring the occupancy of space 104. In the illustrated example, eachof the motion sensors 106 has a FOV of approximately 90 degrees, withmotion sensors 106 a-106 d pointed in orthogonal horizontal directionssubstantially parallel to a surface 108 of desk 102, such that the FOVof sensors 106 a-106 d collectively provide a 360 degree view of space.Referring to coordinate system 110, motion sensors 106 a, 106 b, 106 c,and 106 d are pointed in horizontal directions +X, +Y, −X, and −Y,respectively. Motion sensor 106 e is pointed in a vertical direction +Zsuch that space 104 is divided into five zones 112, namely, zones 112a-112 e (only horizontal zones 112 a-112 d labeled), where each of zones112 is monitored by only a corresponding one of motion sensors 106 andthere is minimal overlap between the zones. In other examples, a givenzone of a monitored space may be monitored by more than one sensor.

Space 104 includes one gate 114, such as a door or other opening forentering and exiting the space. In the illustrated example, gate 114 isin the FOV of only one of motion sensors 106 of device 100,specifically, motion sensor 106 a. As described more below, motionsensor 106 a can, therefore, be referred to in this example as the gatesensor. As described more below, the output signals from motion sensors106 may be analyzed to determine a variety of occupancy characteristicsof space 104, such as whether space 104 is occupied and a number ofpeople located in the space at a given moment in time. In some examples,the sensor data of motion sensors 106 can be characterized as statevectors, where each vector has as many components as there are motionsensors. The vectors may then be processed to determine space occupancystate information. In some examples, identification of one or moremotion sensors as gate sensors and comparison of the sensor data fromthe gate sensor(s) to other sensors monitoring a space can be used toidentify the movement of people within the space, and movement of peopleinto and out of the space, which can be used to determine when the spaceis occupied and to count the number of people within the space.

FIG. 2 shows another example of a device 200 that includes a motionsensor array 202 which includes a plurality of motion sensors 206,specifically sensors 206 a-206 d, for monitoring the occupancy of space204. As with space 104, space 204 has a gate 205. Unlike device 100,which has five sensors 106 a-106 e and is located on a horizontalsurface (i.e., horizontal surface 108 of desk 102), device 200 has foursensors 206 and is mounted to a vertical wall 208 of space 204. Each ofmotion sensors 206 has a FOV, with arrows A-D conceptually illustratingcorresponding respective centers of motion sensor FOVs. As with device100, device 200 is oriented such that the FOVs of motion sensors 206divide space 204 into zones, and such that the FOVs of the motionsensors have minimal overlap, which can facilitate detecting themovement of a person from one motion sensor zone to another. Device 200is also arranged such that gate 205 is located within the FOV of onlyone of motion sensors 206, here motion sensor 206 a, which may also bereferred to as the gate sensor because it is monitoring gate 205, suchthat a person entering or leaving space 204 can be detected by motionsensor 206 a.

In the examples illustrated in FIGS. 1 and 2, each device 100, 200,includes an array of motion sensors 106, 206, respectively, that isconfigured and dimensioned so that FOVs of the motion sensorscollectively encompass substantially all of a space, or at leastsubstantially all of a portion of a space where occupants will belocated. For example, the sensor FOVs in the examples shown in FIGS. 1and 2 collectively encompass substantially all of a horizontal planelocated in the space and the device and/or sensors can be positioned sothat the plane includes a portion of the space where occupants will belocated. A variety of other configurations may also be used. Forexample, a plurality of devices, each of which may be the same as orsimilar to devices 100, 200, may be used in a single space rather thanjust one device as shown in FIGS. 1 and 2, with each of the multipledevices having one or more motion sensors. In some examples, more thanfour motion sensors can be used to collectively cover a space, and theFOV of the four or more sensors can have minimal overlap, or can have asubstantial amount of overlap, for example, up to 100% overlap. In someexamples, the FOVs of a motion sensor array may not encompass an entirehorizontal plane in a space. For example, a motion sensor device mayinclude one gate sensor and at least one additional senor having a FOVthat is adjacent the gate sensor FOV. For example, in the case of adevice located some distance from a perimeter of a space, such as device100, such a device may only include three sensors. For example, device100 may be modified to omit sensors 106 c and 106 e such that itincludes gate sensor 106 a and adjacent sensors 106 b, 106 d. For adevice located along the perimeter of a space, such as device 200 (FIG.2), device 200 may be modified to omit motion sensors 206 c and 206206 dand only include one sensor (206 b) in addition to the gate sensor 206a. More generally, a device may include at least one gate sensor and oneor more additional sensors detect movement of a person to other areas ofa monitored space outside of an area of the space encompassed by thegate sensor FOV.

In the examples illustrated in FIGS. 1 and 2, motion sensors 106, 206are designed to become active when the presence of a person is detectedwithin the FOV of a sensor. In some examples, motion sensors 106, 206are configured to remain active for a duration that is a function of amagnitude of stimulus, e.g., thermal stimulus detected by the sensor. Insome examples, one or more of motion sensors 106, 206, are PIR sensors.Non-limiting examples of PIR sensors that may be used in some examplesinclude sensors provided by Excelitas Technologies. In another exampleone or more of sensors 106, 206 may be an IR array, e.g., an array of IRpixels, e.g., a 32×32 array, and post processing of temperature datafrom the IR array may be used to mimic the behavior of a PIR sensor.

FIG. 3 is a functional block diagram of device 100. Device 200 may havea similar configuration. In the illustrated example, device 100 mayinclude motion sensor array 105 (FIG. 1) that are each operativelyconnected to a memory 302 for storing raw data from the sensor array.Memory 302 can be of any suitable type (e.g., RAM and/or ROM, or othersuitable memory) and size, and in some cases may be implemented withvolatile memory, non-volatile memory, or a combination thereof. Memory302 may be utilized, for example, for processor workspace and/or tostore applications, sensor data, etc., on a temporary or permanentbasis. Memory 302 can include one or more modules stored therein thatcan be accessed and executed, for example, by processor(s) 304.

Memory 302 also may include one or more applications stored therein. Forexample, in some cases, memory 302 may include a data acquisitionapplication 306 for receiving sensor data from motion sensor array 105and storing the data in an activity table database 308, a dataprocessing application 310 for processing the motion sensor data, and amachine learning application 312 for applying one or more machinelearning algorithms for analyzing the motion sensor data.

Device 100 may also include a manual switch 314, such as a dual in-linepackage (DIP) switch, which can be used to manually define anorientation of one or more of motion sensors 106 a-106 e. For example,the manual switch 314 may be used to define one or more of the sensorsas a gate sensor to indicate that an access point to a space beingmonitored by device 100 is within a FOV of the motion sensor. Device 100may also include a timer 316, such as a 32-bit millisecond timer that,as described below, can be used to determine an elapsed time associatedwith a motion sensor array state vector and an elapsed time from whenactivity was detected within a space.

Device 100 may also include a communication module 318, in accordancewith some embodiments. Communication module 318 may be configured, forexample, to aid in communicatively coupling device 100 with one or morebuilding system components 320 and/or a corresponding communicationnetwork. Communication module 318 can be configured, for example, toexecute any suitable wireless communication protocol that allows fordata/information to be passed wirelessly. Note that each of device 100,and any building system component can be associated with a unique ID(e.g., IP address, MAC address, cell number, or other such identifier)that can be used to assist the communicative coupling there between, inaccordance with some embodiments. Some example suitable wirelesscommunication methods that can be implemented by communication module318 of device 100 may include: radio frequency (RF) communications(e.g., Wi-Fi®; Bluetooth®; near field communication or NFC); IEEE 802.11wireless local area network (WLAN) communications; infrared (IR)communications; cellular data service communications; satellite Internetaccess communications; custom/proprietary communication protocol; and/ora combination of any one or more thereof. In some embodiments, device100 may be capable of utilizing multiple methods of wirelesscommunication. In some such cases, the multiple wireless communicationtechniques may be permitted to overlap in function/operation, while insome other cases they may be exclusive of one another. In some cases awired connection (e.g., USB, Ethernet, FireWire, or other suitable wiredinterfacing) may also or alternatively be provided between device 100and one or more building system components.

In some instances, device 100 may be configured to be directlycommunicatively coupled with a building system component 320. Forexample, device 100 can be used as a switch for turning one or morelights on and off. In some other cases, device 100 and correspondingbuilding system components optionally may be indirectly communicativelycoupled with one another, for example, by an intervening or otherwiseintermediate network (not illustrated) for facilitating the transfer ofdata between the device and building system component. Any suitablecommunications network may be used, and in some example cases may be apublic and/or private network, such as a private local area network(LAN) operatively coupled to a wide area network (WAN) such as theInternet. In some instances, a network may include a wireless local areanetwork (WLAN) (e.g., Wi-Fi® wireless data communication technologies).In some instances, a network may include Bluetooth® wireless datacommunication technologies. In some cases, a network may includesupporting infrastructure and/or functionalities such as a server and aservice provider.

Data Acquisition

As discussed above, motion sensor arrays made in accordance with thepresent disclosure, such as array 105 (FIG. 1), may be operativelyconnected to memory 302 and processor 304 and the processor can beconfigured to receive and analyze the motion sensor readings todetermine whether a space monitored by the array, such as space 104, isoccupied. For example, the output of each motion sensor 106 a-106 e canbe monitored as a function of time, and the value of each motion sensorcan be characterized as a component of a state vector A_(i), wherevector A_(i)has as many components as there are motion sensors 106. Asdescribed more below, state vector A_(i) may be processed and analyzedin a variety of ways to determine occupancy characteristics of amonitored space. Example motion sensor data processing algorithms arediscuss herein in connection with device 100 (FIG. 1), however, it willbe appreciated by a person having ordinary skill in the art that thesensor data analysis processes disclosed herein may be applied to otherconfigurations of motion sensor arrays having any number and arrangementof motion sensors.

In one example, the state vectors may be saved in activity tabledatabase 308 (FIG. 3) for analysis. In one example, to reduce data thatwill not be useful for determining occupancy characteristics for space104, only vectors A_(i) associated with a change in a motion sensor 106reading may be saved. For example, processor 304 may add a vector A_(i)to activity table database 308 if the vector differs from a last-savedvector by at least one motion state such that any two consecutivevectors A_(i),A_(i+i) differ in at least one motion state. A duration oftime associated with vector A_(i) may also be saved. If vector A_(i) andA_(i+1) started at times t_(i) and t_(i+1) , respectively, timer 316 maybe reset when each new vector A is saved, and an elapsed time (asopposed to absolute time) may be associated with vector A_(i), e.g., aduration of time t_(i+1). Activity table database 308 may thereforeinclude rows of motion sensor state vectors and associated durations oftime as follows: A_(i), t_(i+1) which provides a table of motion sensorstate vectors and the length of time associated with the vector whichcan indicate a length of time array 105 of motion sensors 106 were in agiven state.

Data acquisition application 306 may include a compaction algorithm toeliminate data associated with short periods of inactivity that can beattributed to random motion of one or more people within a zone 112,such that the activity table is more likely to include only motionsensor state vectors associated with sensing a person entering one ofthe zones. In one example, a time duration T_(compact) can be defined asa typical duration of time associated with a person walking from onezone 112 to another. T_(compact), therefore, can be a function of a sizeand/or configuration of a space, such as space 104 and a typical speedof occupants that use the space.

In one example, a compaction process may include an evaluation of threeconsecutive motion sensor state vectors and associated time durations asshown in Table 1:

TABLE 1 Vector Duration of Time A_(i−1) t_(i) A_(i) = 0 t_(i+1) A_(i+1)t_(i+2)Where A_(i)=0 indicates all motion sensors 106 in array 105 areinactive, meaning they are outputting zero. A compaction process mayremove zero state A_(i)=0 from activity table if it's duration is lessthan T_(compact):t _(i+1) <T _(compact)  Eq. (1)

If A_(i)=0 is removed, the duration of A_(i+i)in the activity table canbecome a modified t_(i+i)equal to t_(i+2) plus t_(i+1) , the duration ofA_(i)=0.

In one example, processor 304 may be configured to determine and/orperiodically or continually adjust T_(compact). In one example processor304 can determine T_(compact) by considering a subset of A vectorsassociated with a single person moving between zones. In one example,this can be modeled by considering three consecutive vectors andassociated time durations as shown in Table 2.

TABLE 2 Vector Duration of Time A_(i−1) t_(i) A_(i) = 0 t_(i+1) A_(i+1)t_(i+2)where A_(i−1) and A_(i+1) each include only one active motion sensor106, and where the active motion sensor in A_(i−1) and A_(i+1) areadjacent in space 104. This may occur when a single person enters one ofzones 112, such as zone 112 a, thereby causing the motion sensor 106 ato become active and output a value of 1, and then the person continuesto move to an adjacent one of zones 112, in this example, zone 112 b or112 d, and cause the sensor 106 associated with that zone 112 b or 112 dto become active. Processor can be configured to identify a singleperson moving between zones 112 when the following two conditions ofequations (2) and (3) are met:Σ(A _(i−1))=Σ(A _(i+1))=1 ; and  Eq. (2)A _(i−1) ^(T) *N*A _(i+1)=1,  Eq. (3)in which:A_(i−1) ^(T) is the transpose of A_(i−1) andN is a neighborhood matrix which entry (a,b) equals 1 if sensors a and bare neighbors or the same sensor (a=b) and otherwise 0. Table 3illustrates an example neighborhood matrix N for device 100:

TABLE 3

Note that in the example shown in FIG. 1, the fifth sensor 106 e may notbe included in the analysis because device 100 is located on a desk withsensor 106 e pointing up. In another example, where device 100 islocated on the ceiling, data from sensor 106 e may be included in theanalysis. Processor 304 can collect the motion sensor state vectors thatmeet the requirements of equations 2 and 3, apply the compaction processdiscussed above to remove A_(i)=0 and associate vector A_(i+1) with amodified duration of t_(i+1) equal to the duration of t_(i+1)associatedwith A_(i) =0 plus time duration t_(i+2)from Table 2. Processor 304 canthen evaluate the distribution of modified time durations t_(i+1)associated with vectors A_(i+1). The collected time distributions mayeventually include a superposition of two distributions—a uniformdistribution associated with random motion of occupants, and anotherdistribution with a maxima or peak corresponding to a longer timeduration associated with a single person moving between two adjacentzones. Processor 304 may be configured to use statistical processingtechniques to, for example, determine a mean value associated with thelocal maxima and then set T_(compact) equal to the determined maximaplus half of the width of the maxima.

Data Processing

As discussed above, prior art implementations of motion sensors andtimers include resetting a timer of a predefined duration to zero when amotion sensor senses the presence of a person in a space and becomesactive, e.g., the output of the sensor changes from zero to one. Adrawback of such an approach is people may remain in the space for alonger duration of time than the duration of the timer such that abuilding system component 320 controlled by the sensor may transition toan unoccupied state, for example, lights in the space may turn off, orthe temperature in the space may be decreased, etc., even though thespace is still occupied. Motion sensor arrays made in accordance withthe present disclosure, such as motion sensor arrays 105 (FIG. 1) and202 (FIG. 2) may be used to overcome the shortcoming of prior art motionsensor devices. In one example, a motion sensor array such as motionsensor array 105 may be installed in a space, such as space 104, and themotion sensor 106 whose FOV includes gate 114 can be identified as thegate sensor. After identifying the gate sensor, and with knowledge ofthe spatial relationship of the gate sensor, in the FIG. 1 examplemotion sensor 106 a, to the other motion sensors 106 in array 105, thedevice may be used to determine when space 104 is unoccupied when both(1) timer 316 (FIG. 3) reaches a predetermined time duration, (2) allmotion sensors 106 read zero, and (3) the last motion state vector whereactivity was detected involved only the gate sensor.

Referring to FIG. 4, and also to FIGS. 1 and 3, FIG. 4 illustrates anexample process 400 for determining when a space, such as space 104,becomes unoccupied, by utilizing a device that includes an array ofmotion sensors, such as device 100 or device 202. Process 400 may beginat block 402 and then proceed to block 404 in which a processor, such asprocessor 304 (FIG. 3), may determine if a state of any of motionsensors 106 has changed (abbreviated as P-State in FIG. 4), therebyindicating the presence of one or more people has been detected withinspace 104. If yes, at block 406, timer 316 can be reset to zero, and theprocess may return to block 402. If, at block 404, there has been nochange in the output of any motion sensor 106, at block 408, processor304 may determine if the output of all of motion sensors 106 is zero,indicating no activity within space 104. If no, then activity has beendetected recently and the process can return to block 402. If thedecision at block 408 is yes, indicating no activity has been sensed forsome period of time and space 104 may be empty, then at block 410,processor 304 may determine if the last instance in time where a motionsensor sensed the presence of a person (e.g., when the output of one ofmotion sensors 106 was 1), only the gate sensor (e.g., motion sensor 106a) was active. Such a reading may indicate the last person in space 104has left because none of the other motion sensors 106 were detectingactivity and after sensor 106 a detected activity, there was a period inwhich no sensors detected activity. If the decision at block 410 is no,the process can return to block 402. Thus, even if all of motion sensors106 are reading zero for a long duration of time, processor 304 maystill consider space 104 as occupied unless the condition in block 410is met. This can allow a building system component, such as lights inspace 104 to remain on when occupants in the space 104 have remainedstationary for a long period of time, such as during a meeting. If thecondition in block 410 is met, process 400 can continue to block 412 todetermine if the output of timer 316 is greater than a predefinedtimeout duration. If yes, then processor 304 can determine the state ofoccupancy of space 104 (abbreviated in FIG. 4 as S-State) is empty andsend an unoccupied signal to one or more building system components to,for example, turn the lights off in space 104. The systems and methodsdisclosed herein may be extended to spaces with more than one gate. Insuch cases, there may be more than one device, each device having one ormore motion sensors. A central controller may collect and analyze datafrom each device in order to collectively monitor the activity in thespace and entry and exit from each gate.

Prior to implementing process 400, the gate sensor of a motion sensorarray may be determined. As discussed above, a gate sensor is a motionsensor whose FOV includes the means of ingress to and egress from aspace, such as a door in a conference room. In the example illustratedin FIG. 1, motion sensor 106 a is the gate sensor because motion sensorarray 105 is positioned such that gate 114 is within the FOV of motionsensor 106 a, the FOV being illustrated in FIG. 1 as zone 112 a. In oneexample, Device 100 may include mechanical switch 314, such as a DIPswitch. During installation of device 100, mechanical switch 314 may beused to identify the motion sensor 106 that is the gate sensor. Theswitch setting can be saved in memory 302 for use by applications 306,310, and 312.

If the gate sensor is not manually set, processor 304 may be configuredto analyze sensor data from motion sensors 106 to identify the gatesensor. In one example, processor 304 can look at three consecutivemotion sensor state vectors A having associated durations as shown inTable 4:

TABLE 4 Vector Duration of Time A_(i−1) t_(i) A_(i) = 0 t_(i+1) A_(i+1)t_(i+2)

In one example, a motion sensor can be assumed to be the gate sensor ifit is the only active sensor prior to and after a relatively long periodof inactivity, which can be referred to as T_(gate). For example, whenall occupants leave space 104, the gate sensor, here motion sensor 106a, would be the last sensor to detect the presence of a person becauseit is the last zone 112 the person would need to walk through to leavethe room. Space 104 may then be empty for a relatively long period oftime, e.g., minutes or hours, until someone entered the room again forthe next meeting or the next work day. When one or more people againenter space 104, motion sensor 106 a would be the first sensor to sensethe presence of a person as the first person enters space 104.

In one example, T_(gate) may be determined when the following threeconditions are met:Σ(A _(i−))=Σ(A _(i+1))=1  Eq. (4)t _(i+1) >T _(gate); and  Eq. (5)Σ(A _(i−1) *A _(i+1))=1  Eq. (6)

As will be appreciated, the conditions defined by equations 4-6 would besatisfied when only one motion sensor 106 is active in vectors A_(i−1)and A_(i+1) and it is the same sensor.

The value of T_(gate) can be a function of what space 104 is typicallyused for, and in some examples, can be as long as a few hours. Processor304 may then define the gate sensor as the single sensor that was activein both A_(i−1) and A_(i+1) when a sufficiently long T_(gate)is applied.

In another example, processor 304 may consider more motion sensor statevectors than as allowed by equations 4-6 as follows:Σ(A _(i−1) *A _(t+1))≥1  Eq. (7)Applying equation 7, processor 304 would evaluate not only vectorsA_(i-1) and A_(i+1) in which the same sensor and only that sensor isactive before and after a period where no activity is detected (A_(i)=0) but also motion vectors in which any sensor is active before andafter a period of inactivity. Processor 304 may then determine the gatesensor is the sensor that is most active in the group of vectors thatsatisfy equation 7.

After the gate motion sensor is manually set or determined by processor304 as described above, an identification number associated with thegate sensor can be saved to memory 302 for use by processor 304. Afterprocessor 304 has determined which motion sensor 106 is the gate sensor,it can immediately begin to apply one or more algorithms that utilizeidentification of the gate sensor for determining occupancy, such asprocess 400 (FIG. 4).

Any of a variety of algorithms may be employed that compare motion gatesensor data to the data of other motion sensors in an array to, forexample, determine when a space is empty, and/or to count the number ofpeople entering or leaving a space. In one example, processor 304 maydetermine when a single person has left space 104 by evaluating twoconsecutive motion array state vectors A_(i−2), A_(i−1) prior to avector of inactivity A_(i)=0 and determine a single person has leftspace 104 if (1) A_(i−1) reflects only the gate sensor is active, (2)A_(i−2) reflects only a sensor immediately adjacent the gate sensor isactive, and (3) the duration the gate sensor was active is equal to orgreater than an expected minimum time for a person to walk through thegate sensor field of view and exit space 104. For example, processor 304may consider three consecutive motion sensor array state vectors asshown in Table 5:

TABLE 5 Vector Duration of Time A_(i−2) ≠ 0 t_(i−1) A_(i−1) = G t_(i)A_(i) = 0 t_(i+1)(Note: A_(i−1)=G indicates that only the gate sensor is active; A_(i)=0indicates no sensor is active)Processor 304 may determine a single person has left space 104 when thefollowing three conditions are met:Σ(A _(i−2))=1  Eq. (8)A _(i−1) ^(T) *N*A _(i−2)=1; and  Eq. (9)t _(i) >T _(move)  Eq. (10)in which:

A_(i−1) ^(T) is the transpose of A_(i−1)

N is a neighborhood matrix that equals 1 when motion sensors areneighbors or the same sensor and otherwise 0 (Table 3 for the exampleillustrated in FIG. 1); and

T_(move) is an expected minimum time for a person to walk through thegate sensor field of view and exit the space 104. T_(move) can beassumed based on a size of the gate sensor FOV and a typical walkingspeed, or a distribution of time durations t_(i) may be determined andcompared to durations of active times of other sensors.

As will be appreciated, the conditions set forth in equations 8-10 aresatisfied when in the i−2 state, the nearest neighbor to the gate sensorwas active. Thus, equations 8-10 model a single person moving from azone 112 adjacent the gate sensor zone, through the gate sensor zone,and then exiting.

Similarly, three consecutive motion array state vectors A_(i−3),A_(i−2), A_(i−1) prior to a vector of inactivity A_(i)=0 can beevaluated to determine when a single person has left space 104 asfollows. Processor 304 may consider four consecutive motion sensor arraystate vectors as shown in Table 6:

TABLE 6 Vector Duration of Time A_(i−3) ≠ 0 t_(i−2) A_(i−2) = 0 t_(i−1)A_(i−1) = G t_(i) A_(i) = 0 t_(i+1)(Note: A_(i−3)≠0 indicates at least one sensor is active; A_(i−1)=Gindicates that only the gate sensor is active; A_(i−2) and A_(i)=0indicates no sensor is active)

Processor 304 may determine a single person has left space 104 when thefollowing four conditions are met:Σ(A _(i−3))=1  Eq. (11)A _(i−1) ^(T) *N*A _(i−3)=1  Eq. (12)t _(i) >T _(move)  Eq. (13)t _(i−1) <T _(move)  Eq. (14)in which:

A_(i−1) ^(T) is the transpose of A_(i−1)

N is a neighborhood matrix that equals 1 when motion sensors areneighbors or the same sensor and otherwise 0 (Table 3 for the exampleillustrated in FIG. 1); and

T_(move) an expected minimum time for a person to walk through the gatesensor field of view and exit the space 104. T_(move) may be assumedbased on a size of the gate sensor FOV and a typical walking speed, or adistribution of time durations t_(i) may be determined and compared todurations of active times of other sensors.

As will be appreciated, equations 11-14 are satisfied when in the i−3state, the nearest neighbor to the gate sensor was active. Thus,equations 11-14 model a single person moving from a zone 112 adjacentthe gate sensor zone (in state i−3), through the gate sensor zone (instate i−1), and then exiting. Equations 11-14 also account for briefperiods of inactivity (state i−2) prior to a state where only the gatesensor is active by allowing periods of inactivity that are less thanT_(move).

The number of state vectors prior to a period of inactivity can begeneralized as a number, K, of vectors, in which K=2 in equations 8-10and K=3 in equations 11-14. In one example, the number of prior statevectors can be increased as the number of motion sensors being used tomonitor a space is increased. One example for determining a value for Kfor a given application is as follows:K≥√{square root over (S)}  Eq. (15)in which:

S is the total number of motion sensors.

In one example, when more than three state vectors are considered, acompaction process such as the one described above can be applied andthen K consecutive motion sensor state vectors can be identified thateach involve only one active sensor and that are associated with asingle person walking through adjacent zones to reach the gate sensorand exit.

A number of people that have entered or left a space may also bedetermined by first applying equations such as 8-10 or 11-14 todetermine when a space such as space 104 has completely emptied orfilled. Processor 304 may then begin to evaluate consecutive motionsensor array state vectors prior to A_(i−1)=G and identify the laststate vector A_(i−K) in which the gate sensor was active, such that inthe A_(i−(K−i)) motion state vector, the gate sensor is inactive, but ineach of motion sensor state vectors A_(i−K) to A_(i−1) the gate sensoris active. The total duration of time for everyone to move through thezone defined by the FOV of the gate sensor (e.g., zone 112 a in FIG. 1),can then be determined by adding the durations associated with each ofA_(i−K) to A_(i−1), which can be defined as T leave all. An estimatednumber of total people that entered or left space 104 can then bedetermined as follows:C≈T _(leave_all) ÷T _(leave_1)  Eq. (16)T _(leave_all)=Σ_(i−(K−1)) ^(i) t  Eq. (17)in which:

C is the estimated total number of people; and

T_(leave_1) is the duration of time it takes for one person to movethrough the zone defined by the FOV of the gate sensor, which in oneexample can be defined above as T_(move) (see above).

Processor 304 may also analyze motion sensor array state vectors todetermine periods of time within some predefined period of time, such asduring a range of minutes or hours of a day, or days of a week, in whichoccupants are active with a space, such as space 104. For example, atotal duration of time over some predefined period of time during whichany motion sensor in an array of motion sensors detects motion can berecorded.

Machine Learning

In another example, processor 304 may be configured to execute one ormore machine learning applications 312 to analyze the output of motionsensors 106 to determine a variety of characteristics associated withthe occupancy of space 104. Machine learning algorithms disclosed hereinmay be used as an alternative or in addition to the other techniquesdisclosed herein for analysis of motion sensor data. In one example, oneor more feature vectors may be defined that can be formed from rawmotion sensor data and one or more classifiers can be developed thatrelate the feature vectors to a learning set of the feature vectors forwhich the answer, e.g., whether a space 104 is occupied or empty, or thenumber of people in a space 104, is known. Supervised learning may beused, where a learning set may be specified, for example, duringcommissioning. In addition or as an alternative, unsupervised learningmay be used, for example, a learning set may be developed and refined bydevice 100 after commissioning. For example, device 100 may becommissioned with a learning set, but the device may also be configuredto update the learning set after commissioning. Employing unsupervisedmachine learning can have the advantage of not requiring a deepunderstanding of the connection between raw sensor data and a desiredanswer, for example, whether a space 104 is occupied or how manyoccupants are in a space 104.

In one example, one or more of the following feature vectors may bedefined for monitoring the occupancy of a space:M _(i)=Σ(A _(i))  Eq. (18)D _(i) =t _(i+1)  Eq. (19)C1_(i,i+1) =A _(i) ^(T) *N*A _(i+1)  Eq. (20)C2_(i,i+2) =A _(i) ^(T) *N*A _(i+2)  Eq. (21)in which:

M_(i) is the total mass of the i^(th) state;

D_(i) is the time duration of the i^(th) state;

C1_(i,i+1) is the correlation of neighbors for adjacent states and N isthe neighborhood matrix discussed above (see, e.g., Table 3); and

C2_(i,i+2) is a correlation of neighbors for states twice removed.

Equations 18-21 define one example feature space, which is afour-dimensional feature space. M_(i) may be useful because it isrelated to a number of occupants in the space. The other three featurevectors are similar to equations discussed above and can be usefulbecause they contain information about the movement, and change innumber, of people within the space. C1 and C2 spatial correlationsbetween consecutive and non-consecutive state vectors.

In one example, processor 304 may be configured to execute machinelearning application 312, which may calculate the feature vectors ofequations 18-21 and determine an answer using a classifier. In oneexample, a classifier may consider a hypervolume of the feature space inwhich the sensor data resides, and make an interpretation of the sensordata based on past associations between the hypervolume and possibleanswers (the learning set of feature vectors). Any of a variety ofclassifiers known in the art may be used, for example, machine learningapplication 312 may employ a K-nearest neighbors (KNN) classifier, whichcalculates a distance between a current feature vector and correspondinglearning feature vectors, where a closest calculated value is selectedas the answer.

In some examples, machine learning algorithms may be used to determinethe gate sensor, or the gate sensor may be determined using othertechniques disclosed herein. In some examples, a compaction process suchas the compaction process disclosed herein may be employed to eliminatenon-useful data from the data set evaluated by the machine learningalgorithm, which can reduce the processing required to interpret thedata with the classifier.

Any one or more of the aspects and embodiments described herein may beconveniently implemented using one or more machines programmed accordingto the teachings of the present specification, as will be apparent tothose of ordinary skill in the computer art. Appropriate software codingcan readily be prepared by skilled programmers based on the teachings ofthe present disclosure, as will be apparent to those of ordinary skillin the software art. Aspects and implementations discussed aboveemploying software and/or software modules may also include appropriatehardware for assisting in the implementation of the machine executableinstructions of the software and/or software module.

Such software may be a computer program product that employs amachine-readable storage medium. A machine-readable storage medium maybe any medium that is capable of storing and/or encoding a sequence ofinstructions for execution by a machine (e.g., a computing device) andthat causes the machine to perform any one of the methodologies and/orembodiments described herein. Examples of a machine-readable storagemedium include, but are not limited to, a magnetic disk, an optical disc(e.g., CD, CD-R, DVD, DVD-R, etc.), a magneto-optical disk, a read-onlymemory “ROM” device, a random access memory “RAM” device, a magneticcard, an optical card, a solid-state memory device, an EPROM, an EEPROM,and any combinations thereof. A machine-readable medium, as used herein,is intended to include a single medium as well as a collection ofphysically separate media, such as, for example, a collection of compactdiscs or one or more hard disk drives in combination with a computermemory. As used herein, a machine-readable storage medium does notinclude transitory forms of signal transmission.

Such software may also include information (e.g., data) carried as adata signal on a data carrier, such as a carrier wave. For example,machine-executable information may be included as a data-carrying signalembodied in a data carrier in which the signal encodes a sequence ofinstruction, or portion thereof, for execution by a machine (e.g., acomputing device) and any related information (e.g., data structures anddata) that causes the machine to perform any one of the methodologiesand/or embodiments described herein.

Examples of a computing device include, but are not limited to, anelectronic book reading device, a computer workstation, a terminalcomputer, a server computer, a handheld device (e.g., a tablet computer,a smartphone, etc.), a web appliance, a network router, a networkswitch, a network bridge, any machine capable of executing a sequence ofinstructions that specify an action to be taken by that machine, and anycombinations thereof. In one example, a computing device may includeand/or be included in a kiosk.

FIG. 5 shows a diagrammatic representation of one embodiment of acomputing device in the exemplary form of a computer system 500 withinwhich a set of instructions for causing a system, such as the device 100of FIG. 1 and one or more building system components, to perform any oneor more of the aspects and/or methodologies of the present disclosure.It is also contemplated that multiple computing devices may be utilizedto implement a specially configured set of instructions for causing oneor more of the devices to perform any one or more of the aspects and/ormethodologies of the present disclosure. Computer system 500 includes aprocessor 504 and a memory 508 that communicate with each other, andwith other components, via a bus 512. Bus 512 may include any of severaltypes of bus structures including, but not limited to, a memory bus, amemory controller, a peripheral bus, a local bus, and any combinationsthereof, using any of a variety of bus architectures.

Memory 508 may include various components (e.g., machine-readable media)including, but not limited to, a random access memory component, a readonly component, and any combinations thereof. In one example, a basicinput/output system 516 (BIOS), including basic routines that help totransfer information between elements within computer system 500, suchas during start-up, may be stored in memory 508. Memory 508 may alsoinclude (e.g., stored on one or more machine-readable media)instructions (e.g., software) 520 embodying any one or more of theaspects and/or methodologies of the present disclosure. In anotherexample, memory 508 may further include any number of program modulesincluding, but not limited to, an operating system, one or moreapplication programs, other program modules, program data, and anycombinations thereof.

Computer system 500 may also include a storage device 524. Examples of astorage device (e.g., storage device 524) include, but are not limitedto, a hard disk drive, a magnetic disk drive, an optical disc drive incombination with an optical medium, a solid-state memory device, and anycombinations thereof. Storage device 524 may be connected to bus 512 byan appropriate interface (not shown). Example interfaces include, butare not limited to, SCSI, advanced technology attachment (ATA), serialATA, universal serial bus (USB), IEEE 1394 (FIREWIRE), and anycombinations thereof. In one example, storage device 524 (or one or morecomponents thereof) may be removably interfaced with computer system 500(e.g., via an external port connector (not shown)). Particularly,storage device 524 and an associated machine-readable medium 528 mayprovide nonvolatile and/or volatile storage of machine-readableinstructions, data structures, program modules, and/or other data forcomputer system 500. In one example, software 520 may reside, completelyor partially, within machine-readable medium 528. In another example,software 520 may reside, completely or partially, within processor 504.

Computer system 500 may also include an input device 532. In oneexample, a user of computer system 500 may enter commands and/or otherinformation into computer system 500 via input device 532. Examples ofan input device 532 include, but are not limited to, an alpha-numericinput device (e.g., a keyboard), a pointing device, a joystick, agamepad, an audio input device (e.g., a microphone, a voice responsesystem, etc.), a cursor control device (e.g., a mouse), a touchpad, anoptical scanner, a video capture device (e.g., a still camera, a videocamera), a touchscreen, and any combinations thereof. Input device 532may be interfaced to bus 512 via any of a variety of interfaces (notshown) including, but not limited to, a serial interface, a parallelinterface, a game port, a USB interface, a FIREWIRE interface, a directinterface to bus 512, and any combinations thereof. Input device 532 mayinclude a touch screen interface that may be a part of or separate fromdisplay 536, discussed further below. Input device 532 may be utilizedas a user selection device for selecting one or more graphicalrepresentations in a graphical interface as described above.

A user may also input commands and/or other information to computersystem 500 via storage device 524 (e.g., a removable disk drive, a flashdrive, etc.) and/or network interface device 540. A network interfacedevice, such as network interface device 540, may be utilized forconnecting computer system 500 to one or more of a variety of networks,such as network 544, and one or more remote devices 548 connectedthereto. Examples of a network interface device include, but are notlimited to, a network interface card (e.g., a mobile network interfacecard, a LAN card), a modem, and any combination thereof. Examples of anetwork include, but are not limited to, a wide area network (e.g., theInternet, an enterprise network), a local area network (e.g., a networkassociated with an office, a building, a campus or other relativelysmall geographic space), a telephone network, a data network associatedwith a telephone/voice provider (e.g., a mobile communications providerdata and/or voice network), a direct connection between two computingdevices, and any combinations thereof. A network, such as network 544,may employ a wired and/or a wireless mode of communication. In general,any network topology may be used. Information (e.g., data, software 520,etc.) may be communicated to and/or from computer system 500 via networkinterface device 540.

Computer system 500 may further include a video display adapter 552 forcommunicating a displayable image to a display device, such as displaydevice 536. Examples of a display device include, but are not limitedto, a liquid crystal display (LCD), a cathode ray tube (CRT), a plasmadisplay, a light emitting diode (LED) display, and any combinationsthereof. Display adapter 552 and display device 536 may be utilized incombination with processor 504 to provide graphical representations ofaspects of the present disclosure. In addition to a display device,computer system 500 may include one or more other peripheral outputdevices including, but not limited to, an audio speaker, a printer, andany combinations thereof. Such peripheral output devices may beconnected to bus 512 via a peripheral interface 556. Examples of aperipheral interface include, but are not limited to, a serial port, aUSB connection, a FIREWIRE connection, a parallel connection, and anycombinations thereof.

The foregoing has been a detailed description of illustrativeembodiments of the disclosure. It is noted that in the presentspecification and claims appended hereto, conjunctive language such asis used in the phrases “at least one of X, Y and Z” and “one or more ofX, Y, and Z,” unless specifically stated or indicated otherwise, shallbe taken to mean that each item in the conjunctive list can be presentin any number exclusive of every other item in the list or in any numberin combination with any or all other item(s) in the conjunctive list,each of which may also be present in any number. Applying this generalrule, the conjunctive phrases in the foregoing examples in which theconjunctive list consists of X, Y, and Z shall each encompass: one ormore of X; one or more of Y; one or more of Z; one or more of X and oneor more of Y; one or more of Y and one or more of Z; one or more of Xand one or more of Z; and one or more of X, one or more of Y and one ormore of Z.

Various modifications and additions can be made without departing fromthe spirit and scope of this disclosure. Features of each of the variousembodiments described above may be combined with features of otherdescribed embodiments as appropriate in order to provide a multiplicityof feature combinations in associated new embodiments. Furthermore,while the foregoing describes a number of separate embodiments, what hasbeen described herein is merely illustrative of the application of theprinciples of the present disclosure. Additionally, although particularmethods herein may be illustrated and/or described as being performed ina specific order, the ordering is highly variable within ordinary skillto achieve aspects of the present disclosure. Accordingly, thisdescription is meant to be taken only by way of example, and not tootherwise limit the scope of this disclosure.

Exemplary embodiments have been disclosed above and illustrated in theaccompanying drawings. It will be understood by those skilled in the artthat various changes, omissions and additions may be made to that whichis specifically disclosed herein without departing from the spirit andscope of the present disclosure.

What is claimed is:
 1. A method of determining an occupancycharacteristic of a space with an array of motion sensors operativelyconnected to a processor, the method comprising: receiving sensor datafrom the array of motion sensors located on a motion sensor devicewithin the space, the array of motion sensors comprising a plurality ofmotion sensors on the motion sensor device; characterizing, by theprocessor, the sensor data as components of state vectors; anddetermining, by the processor, occupancy characteristics of the space byanalyzing the state vectors.
 2. The method of claim 1, furthercomprising applying, by the processor, a compaction process to disregardones of the state vectors associated with random motion within thespace.
 3. The method of claim 2, wherein the compaction process includesdisregarding, by the processor, state vectors in which all of the motionsensors are inactive for a time duration that is less than a thresholdvalue.
 4. The method of claim 3, further comprising defining, by theprocessor, the threshold value as an estimated minimum duration of timefor a person to walk across a field of view (FOV) of one of the motionsensors.
 5. The method of claim 3, further comprising determining, bythe processor, the threshold value by identifying three consecutivestate vectors in time, the first and third of the three consecutivestate vectors each representing only one active motion sensor in thearray of motion sensors and second state vector representing no activemotion sensors in the array of motion sensors, wherein the active motionsensors in the first and third state vectors are immediately adjacent inspace.
 6. The method of claim 1, wherein the space includes a gate forentering and exiting the space, and wherein one of the motion sensors isa gate sensor having a field of view that includes the gate, the methodfurther comprising identifying, by the processor, the gate sensor byanalyzing consecutive state vectors.
 7. The method of claim 6, whereinidentifying the gate sensor includes identifying, by the processor, astate vector of inactivity preceded and succeeded by a state vector withat least one active motion sensor.
 8. The method of claim 7, whereinidentifying the state vector of inactivity comprises determining, by theprocessor, whether the state vector of inactivity has a duration that isgreater than a threshold value.
 9. The method of claim 1, whereindetermining occupancy characteristics of the space by analyzing thestate vectors comprises: calculating, by the processor, feature vectorsfrom the sensor data, wherein the feature vectors include a sum of thenumber of active sensors and spatial correlation between consecutivestate vectors; and using, by the processor, a classifier to interpretthe feature vectors based on a learning set of feature vectors.
 10. Themethod of claim 1, wherein receiving comprises: receiving sensor datafrom the array of motion sensors located on a single electronic devicewithin the space, the array of motion sensors comprising a plurality ofmotion sensors on the single electronic device.